/*
 * main.c
 *
 *  Created on: 12/09/2011
 *      Author: meax
 */

#include "main.h"

/*******************************************************************/
/*	Variables Globales	*/

int32_t cacheActiva;

//	mutex
pthread_mutex_t mutex_logfile;
pthread_mutex_t mutex_fat;
pthread_mutex_t mutex_cacheVector;

/*******************************************************************/

int main(int argc, char* argv[])
{

	/******************************************************************************/
	/********************************	CACHE	***********************************/
	/******************************************************************************/

	int32_t maxCon;

	cacheActiva = 0;
	/*	señal cache	log 														*/
	if (signal(SIGUSR1, treatSignalForCache) == SIG_ERR)
		escribir_logfile(NOMPS, 0, ERROR, "Error al capturar la signal CACHE file");
	establecerTamanioDeLaCache(8);
	/******************************************************************************/
	/******************************************************************************/

	maxCon = atoi(buscacfg("MAXCON"));
	crearPoolConexiones( maxCon );
	/******************************************************************************/
	/******************************************************************************/
	//	Inicializacion de semaforos

	sem_init( &semSockets, 0 , maxCon );
	pthread_mutex_init(&mutex_oper_fat, NULL);
	pthread_mutex_init(&mutex_logfile, NULL);
	pthread_mutex_init(&mutex_cacheDirectorio, NULL);
	pthread_mutex_init(&mutex_cacheFile, NULL);
	pthread_mutex_init(&mutex_fat, NULL);
	pthread_mutex_init(&mutex_cacheVector, NULL);
	/******************************************************************************/
	/******************************************************************************/

	set_blockPerCluster(4);

	/******************************************************************************/
	/*	FUSE	*/

/*	for(i=0; i<argc;i++){
		args->argv[i] = malloc (BUFFER_LENGTH);
		strcpy(args->argv[i],argv[i]);
	} */
	pthread_t  iFuse;
	/* iFuse=pthread_create( &iFuse, NULL, consola ,(void*) args); */

	/******************************************************************************/

	iniciarFuse( argc, argv );

	return 0;

}
